メインコンテンツまでスキップ

인사연동 수행

1. 개요

본 문서에서는 JDDC드라이버를 사용하여 이기종간의 데이터를 가지고 올수 있도록 개발한 소프트캠프의 DBSync를 이용하여
고객사의 인사 정보를 TempTable로 가지고 온 후 SPDTSAgent를 사용하여 문서보안의 각 테이블로 가공되는 방법을 설명합니다.

참고적으로 문서보안 서버 및 고객의 인사 DB가 MSSQL인 경우 연결된 서버를 이용할 수 있습니다.

DBSync의 구조 및 파일의 역할을 이해하여 TempTable로 인사연동를 가지고 온 것으로 검증 한 후 SPDTSAgent를 수행할 수 있도록 합니다.

2. 이용 방법에 따른 인산연동 수행

2.1 DBSync 파일을 서버에 업로드

  • DBSync의 파일들의 사용방법 설명 합니다. 각 탭을 클릭하여 파일의 역할에 대해 숙지 합니다.

디렉토리 및 파일명 : 설치위치\DBSync\conf의 "SqlMapConfigIN.properties" 파일

인사 데이터를 가지고올 DB 정보(SELECT가 수행되는 DB정보)입니다.

LDAP사용시 하단의 LDAP사용 탭에서 상세 사항 참고 바랍니다.

디렉토리 및 파일명 : 설치위치\DBSync\conf의 "ldap.properties" 파일

LDAP 접속 정보 및 가지고 올 속성 정보 입니다.

인사데이터가 있는 DBMS 종류의 driver, url값으로 복사하여 사용합니다.
URL 및 계정 정보를 고객사에서 제공된 정보로 기록합니다.

SqlMapConfigIN.properties 샘플

driver는
mssql 일 경우 driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
oracle 일 경우 driver=oracle.jdbc.OracleDriver
mariadb 일 경우 driver=org.mariadb.jdbc.Driver
mysql 일 경우 driver=com.mysql.jdbc.Driver

url 은
mssql 일 경우 url=jdbc\:sqlserver\://10.10.10.48\:1433;databaseName\=TFTDB;
oracle 일 경우 url=jdbc\:oracle\:thin\:@10.50.10.18\:1521\:xe
mariadb 일 경우 url=jdbc\:mariadb\://10.10.10.10\:3306/tftdb
mysql일 경우 url=jdbc\:mysql\://10.10.10.45\:3306/tftdb

mssql사용시 예시
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc\:sqlserver\://10.10.10.48\:1433;databaseName\=TFTDB;
username=dsecadmin
password=dsecadmin123!@#

2.2. 고객사 인사DB 정보 작성(DBSync INPUT 정보)

  • SqlMapConfigIN.properties 설정파일을 오픈(또는 생성)하여 고객사의 인사DB 정보를 작성
주의사항

SqlMapConfigIN.properties 파일명은 대소문자 구분합니다.

vi /DBSync/conf/SqlMapConfigIN.properties
driver = 고객사인사DB의 종류에맞는 설정 기입
url = 고객사 인사DB의 IP:Port/database
username = 고객사 인사 DB의 접속 ID
password = 고객사 인사 DB의 접속 PW

2.3. 문서보안 DB 정보 작성(DBSync OUTPUT 정보)

  • SqlMapConfigOUT.properties 설정파일을 오픈하여 문서보안DB 정보를 작성
주의사항

SqlMapConfigOUT.properties 파일명은 대소문자 구분합니다.

vi /DBSync/conf/SqlMapConfigOUT.properties
driver = 문서보안 DB의 종류에맞는 설정 기입
url = 문서보안 DB의 IP:Port/database
username = 문서보안 DB의 접속 ID
password = 문서보안 DB의 접속 PW

2.4. 각 TEMPTable_Info에 채울 컬럼 매핑

  • 인사연동간 고객사 DB의 컬럼값을 문서보안 DB의 컬럼으로 가공하는 작업
    select, insert문을 환경에 맞게 수정하여 사용
  • 아래의 쿼리문은 예시로 유저 정보와 그룹정보를 가져오는 쿼리입니다. 직위정보와 겸직정보가 연동이 필요하다면 [select, truncate, insert 형식을 복사하여 뒤의 숫자를 3,4 로 변경하여 작성 필요]
vi /DBSync/sqlmap/query_out.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap namespace="query_out">

<select id="SelectTable1" resultClass="java.util.HashMap">
<![CDATA[ SELECT ID, ID_NAME, GROUP_NUM FROM insatable where ID is not null ]]>
</select>
<delete id="truncateTable1" parameterClass="String">
<![CDATA[ TRUNCATE TABLE tempuser_info ]]>
</delete>
<insert id="InsertTable1" parameterClass="java.util.HashMap">
INSERT INTO TempUser_Info (USER_ID, USER_NAME, GROUP_ID)
VALUES (#ID#, #ID_NAME#, #GROUP_NUM#)
</insert>

<select id="SelectTable2" resultClass="java.util.HashMap">
<![CDATA[ SELECT distinct GROUP_NUM, GROUP_NAME, GROUP_OVER FROM insatable ]]>
</select>
<delete id="truncateTable2" parameterClass="String">
<![CDATA[ TRUNCATE TABLE tempGroup_info ]]>
</delete>
<insert id="InsertTable2" parameterClass="java.util.HashMap">
INSERT INTO tempGroup_info (GROUP_ID, GROUP_NAME, ParentGroup_ID)
VALUES (#GROUP_NUM#, #GROUP_NAME#, #GROUP_OVER#)
</insert>

<procedure id="procecedure1"> { call PROCEDURE_NAME () }
</procedure>
</sqlMap>

2.5. DBSync 실행

  • DBSync 를 동작하여 고객사 DB > 문서보안 TEMP DB로 데이터를 가져오는 작업
    실행파일이 있는 경로로 들어가서 실행
  cd /DBSync/
  java -jar DBSync.jar 1   // 뒤의 숫자 기입시 select 1 delete 1 insert1 실행
java -jar DBSync.jar 2 // 뒤의 숫자 기입시 select 2 delete 2 insert2 실행
query_out.xml 에서 3번 4번 항목도 추가하였다면 아래처럼 추가적으로 실행 필요
java -jar DBSync.jar 3
java -jar DBSync.jar 4

6. 인사연동 설정파일 수정

가. SCI 웹페이지 접속

  • 브라우저 주소창에서 접속(SCISM 서비스 실행되어있어야함 Default포트 8080)
http://문서보안서버IP:8080

나. 상단의 인사연동설정 클릭

  • 인사 DB 설정 탭의 우측창 수정 후 적용 & 접속테스트 클릭

Before

#
#Tue Dec 26 15:35:08 KST 2023
databasename=TFTDB
password=softcamp
url=jdbc\:sqlserver\://127.0.0.1\:1433;databaseName\=TFTDB;
dbms=MSSQL
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
username=drmadmin

After

#
#Tue Dec 26 15:35:08 KST 2023
in.databasename=TFTDB
in.password=softcamp
in.url=jdbc\:sqlserver\://127.0.0.1\:1433;databaseName\=TFTDB;
in.dbms=MSSQL
in.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
in.username=drmadmin

#
#Tue Dec 26 15:35:08 KST 2023
out.databasename=TFTDB
out.password=softcamp
out.url=jdbc\:sqlserver\://127.0.0.1\:1433;databaseName\=TFTDB;
out.dbms=MSSQL
out.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
out.username=drmadmin


7. SPDTSAgent

  • SPDTSAgent 를 동작하여 문서보안 TEMP DB > 문서보안 인사 DB 로 동기화 하는 작업
    인사연동 프로시저가 있는 경로로 들어가서 실행(SCI 서버 설치 경로 하위경로의 SPDTSAgent 폴더안에 존재)
  cd Softcamp/SCI_Server/SPDTSAgent/
./SPDTSAgent

8. 인사연동 완료

  • 인사연동 여부는 관리자콘솔에 접속하여 확인가능